package com.tianqicode.spring.beans.factory.config;

import com.tianqicode.spring.beans.BeansException;
import com.tianqicode.spring.beans.factory.ListableBeanFactory;


public interface ConfigurableListableBeanFactory
        extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    /**
     * 预实例化所有单例Bean
     * @throws BeansException
     */
    void preInstantiateSingletons() throws BeansException;

    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);
}
